const path = require('path');

// 获取文件的注释格式
function getCommentFormat(filePath) {
  const ext = path.extname(filePath).toLowerCase();
  
  const commentFormats = {
    '.js': { start: '/*', end: '*/', line: '//' },
    '.ts': { start: '/*', end: '*/', line: '//' },
    '.jsx': { start: '/*', end: '*/', line: '//' },
    '.tsx': { start: '/*', end: '*/', line: '//' },
    '.css': { start: '/*', end: '*/', line: '/*' },
    '.scss': { start: '/*', end: '*/', line: '//' },
    '.less': { start: '/*', end: '*/', line: '//' },
    '.html': { start: '<!--', end: '-->', line: '<!--' },
    '.htm': { start: '<!--', end: '-->', line: '<!--' },
    '.py': { start: '"""', end: '"""', line: '#' },
    '.rb': { start: '=begin', end: '=end', line: '#' },
    '.java': { start: '/*', end: '*/', line: '//' },
    '.php': { start: '/*', end: '*/', line: '//' },
    '.go': { start: '/*', end: '*/', line: '//' },
    '.rs': { start: '/*', end: '*/', line: '//' },
    '.swift': { start: '/*', end: '*/', line: '//' },
    '.kt': { start: '/*', end: '*/', line: '//' },
    '.sh': { start: '<<COMMENT', end: 'COMMENT', line: '#' }
  };

  return commentFormats[ext] || { line: '#', start: null, end: null };
}

// 为文件内容添加路径注释
function addPathComment(content, relativePath, filePath) {
  const format = getCommentFormat(filePath);
  const divider = '-'.repeat(relativePath.length + 12);
  
  let header;
  
  if (format.start && format.end) {
    header = `${format.start}\n${format.line} FILE: ${relativePath}\n${format.line} ${divider}\n${format.end}\n\n`;
  } else {
    header = `${format.line} FILE: ${relativePath}\n${format.line} ${divider}\n\n`;
  }
  
  return header + content;
}

module.exports = {
  getCommentFormat,
  addPathComment
};